import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2025-02-13
 * Time: 17:01
 */
public class test2 {
    /**
     * LeetCode 581 最短无序连续子数组
     */

    // 解题思路：
    /**
     *  这个题可以拷贝一个新的数组，让新数组进行排序，然后双指针进行比较，遇到不相同的就记录。
     * @param nums
     * @return
     */


    public int findUnsortedSubarray(int[] nums) {
        // 有序就直接返回
        if(isSorted(nums)){
            return 0;
        }
        // 创立一个相同的数组
        int[] numsSorted = new int[nums.length];
        for(int i=0;i<nums.length;i++){
            numsSorted[i] = nums[i];
        }
        Arrays.sort(numsSorted);
        int left = 0;
        int right = nums.length-1;
        while(numsSorted[left] == nums[left]){
            left++;
        }
        while(numsSorted[right] == nums[right]){
            right--;
        }
        return right-left+1;
    }


    // 用于判断当前数组是否有序
    public boolean isSorted(int[] nums){
        for(int i=01;i<nums.length;i++){
            if(nums[i]<nums[i-1]){
                return false;
            }
        }
        return true;
    }
}
